package settings

import (
	"fmt"
	"goblog/pkg/utils"

	"github.com/spf13/viper"
)

var Cfg *Config

type Config struct {
	System SystemConfig `mapstructure:"system"`
	Log    LogConfig    `mapstructure:"log"`
	DB1    DBConfig     `mapstructure:"db1"` // 读库
	DB2    DBConfig     `mapstructure:"db2"` // 写库
}

func LoadConfig() error {
	configPath := utils.FlagOptions.File
	viper.SetConfigFile(configPath) // 设置文件路径
	viper.SetConfigType("yaml")

	if err := viper.ReadInConfig(); err != nil { // 读取配置文件
		return err
	}

	if err := viper.Unmarshal(&Cfg); err != nil { // 解析yaml配置文件
		return err
	}
	fmt.Printf("Config(%+v) loaded successfully!\n", configPath)
	return nil
}
